package com.zilue.payment.gateway.method.remote;

import com.zilue.balance.domain.BaseOrderInfo;
import com.zilue.balance.returnresult.Result;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * Created by ZD on 2017/5/25.
 */
@FeignClient(value = "balance")
public interface BalancePayRemote {
    @RequestMapping(value = "/balance/pay")
    Result<BaseOrderInfo> pay(@RequestParam("accountId") String accountId, @RequestParam("corpId") Long corpId, @RequestParam("fee") Long fee,
                              @RequestParam("orderNo") String orderNo, @RequestParam("source") Integer source, @RequestParam("terminalId") String terminalId,
                              @RequestParam("operId") String operId);

    @RequestMapping("/balance/refund")
    Result<BaseOrderInfo> refund(@RequestParam("logNo") String logNo, @RequestParam("corpId") Long corpId, @RequestParam("fee") Long fee,
                                 @RequestParam("source") Integer source, @RequestParam("terminalId") String terminalId,
                                 @RequestParam("operId") String operId);

    @RequestMapping("/balance/flushes")
    Result<BaseOrderInfo> flushes(@RequestParam("logNo") String logNo, @RequestParam("corpId") Long corpId, @RequestParam("source") Integer source,
                                  @RequestParam("terminalId") String terminalId, @RequestParam("operId") String operId);

}
